home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 076-100 / disk_087 / warptext / notes < prev    next >
Text File  |  1992-05-06  |  10KB  |  236 lines

  1. >From: billk@pnet01.CTS.COM (Bill Kelly)
  2. Subject: Blitz speed (and faster) text routines.  Source.  Availiable.  Now.
  3. Date: 16 May 87 07:56:16 GMT
  4. Organization: People-Net [pnet01], El Cajon, CA
  5.  
  6.  
  7. I decided I'd post this notice now, since BlitzFonts has been receiving so
  8. much press...
  9.  
  10. I have written some routines, which I call my 'WarpText' text routines.  I was
  11. planing to release them free to the public in about a month or so (and I still
  12. am).
  13.  
  14. Here's what they do:  
  15.  
  16. Don't confuse them with BlitzFonts.  I don't have a program that modifies
  17. Text() in order to speed up existing software.  Rather, I have written a bunch
  18. of specific Text routines that are as fast and Faster than Blitz is.  (Again,
  19. not BlitzFonts, but Blitz -- BlitzFONTS is much slower than Blitz anyway, and
  20. is a whole different thing.)
  21.  
  22. My routines are written in assembler and are intended to be used in any
  23. program you might be writing for which you desire text output that is so fast,
  24. a whole screenfull (2000 characters, printing every one, not even skipping
  25. spaces-- printing those too) just *appears* on the screen in front of your
  26. eyes. 
  27.  
  28. This would be very useful in things like Editors, for example.  DME, for
  29. instance, with text output scroll down in a file, keeping up with even the
  30. fastest key repeat speeds... (like mine :-)
  31.  
  32. Or modem programs that have trouble emitting text at over, say, 1200 bps,
  33. could now do 38,400 bps with no sweat...!  (I happen to have a terminal that
  34. will go that fast, so that's useful to me, if no one else...)
  35.  
  36. 'WarpText' does, however (at this time) have a couple limitations...
  37.  
  38. 1. Only works in it's own screen or in a SUPER_BITMAP window.  I should be
  39.    finishing the routine to work inside windows fairly soon.
  40.  
  41. 2. You are limited to topaz.8 or another non-proportional 8 by 8 pixel font.
  42.  
  43.  
  44. 3. (Not a limitation for any practical application I've thought of yet that
  45.    would have a use for WarpText, but:)
  46.    Text locations are specified in character locations-- i.e. Location 10,10
  47.    with the Text() routine would output your text at pixel-location 10,10.
  48.    WarpText would output the text beginning at 10 characters accross and
  49.    10 characters down.  (Pixel location 80,80)
  50.    This should have no impact on things like editors, terminal programs, etc.
  51.    but I thought I'd mention it anyway.
  52.    This feature actually cleaned up my code a lot.  I was always having to
  53.    convert the pixel-locations that Text() uses into character locations
  54.    and vice versa for my program.  Now I can keep it in character locations
  55.    all the time.
  56.  
  57.  
  58. I had planned (and am planning) to release all of my routines and a simple
  59. example program in about a month and a half.  You see, what I'm doing is sort
  60. of writing a LIBRARY of text routines, though it's more of a library in the
  61. conventional sense than an Amiga library. (Which it's not)  I'm putting
  62. together a whole set of WarpText routines, each routine being different and
  63. sort of specializing in something.  
  64.  
  65. E.g.  there is the Plain_Jane routine which does no checking for linefeeds or
  66. formfeeds or anything and only works inside a screen or SUPER_BITMAP.  It just
  67. blasts out pure [sic] text.
  68.  
  69. Then there's the one that does a little bit of checking but is still confined
  70. to a screen or super_bitmap.
  71.  
  72. Next up is one that handles lots of things like cr's linefeeds, VT's, FF's,
  73. etc. and skips spaces in a string for even more speed...
  74.  
  75. Now we come to the one I'm working on right now.. Like the Plain_Jane routine,
  76. but works inside windows.  After that comes the one that supports a few
  77. 'control' characters, and then the even more complicated one -- all working in
  78. windows.
  79.  
  80.  
  81. By doing this, you can choose whichever routine best suits your application,
  82. or pick one that comes close and modify it to your heart's content...
  83.  
  84.  
  85. If anyone wants a 'preview' of WarpText. (i.e. I'll send you what I've got now
  86. so you don't have to wait a *whole* month and a half :-)  send me mail and
  87. I'll send you some stuff.  
  88.  
  89.  
  90. Bye the way, I'm not charging anything for these routines... not even <gasp>
  91. shareware.  (Though I would appreciate a bit of credit if you use them, say in
  92. your source code or your program...)
  93.  
  94.  
  95. Go-Amiga -- Rah! Rah! Rah! etc.  (Sorry this posting was so LLOONNGG...)
  96.  
  97. --
  98. Bill Kelly      {akgua, hplabs!hp-sdd, sdcsvax}!crash!pnet01!billk
  99.                 (Don't use pnet01!billk; try crash!pnet01!billk -- Thanks!)
  100.  
  101.            Bulletin: A seminar on time travel will be held two weeks ago.
  102.  
  103. ==========================================================================
  104.  
  105. Date: Sun, 17 May 87 21:53:37 PDT
  106. >From: hplabs!hp-sdd!billk@pnet01.CTS.COM (Bill Kelly)
  107. To: amdahl!kim
  108. Subject: Re: WarpText preview/Sure...
  109.  
  110.  
  111. No problem... well, maybe one.  I'm in the middle of a semi-major rewrite
  112. right now.  (In fact, WarpText.asm is being dumped to the printer even as I
  113. type so I can glare and frown at the whole thing at once instead of only being
  114. able to see 50 lines at a given time. :-)
  115.  
  116. I found a way to make the routines faster and more versitle (sp?) at the same
  117. time...!  The 'plain_jane' routines will now allow you to specify a 'window'
  118. to type the text into.
  119.  
  120. For instance if you set:  x1=35  y1=11  x2=45  y2=15
  121. and have the routine print:
  122. 'This is a test, nothing can go wrong... go wrong... go wrong...'
  123.  
  124. It will come out:
  125.  
  126.                                 THE SCREEN
  127.         +-------------------------------------------------------+
  128.         +                                                       +
  129.         +                                                       +
  130.         +                                                       +
  131.         +                                                       +
  132.         +                                                       +
  133.         +                       +-------+                       +
  134.         +                       +This is+                       +
  135.         +                       +a test,+                       +
  136.         +                       +nothing+                       +
  137.         +                       +can go +                       +
  138.         +                       +wrong..+                       +
  139.         +                       +-------+                       +
  140.         +                                                       +
  141.         +                                                       +
  142.         +                                                       +
  143.         +                                                       +
  144.         +-------------------------------------------------------+
  145.  
  146. ..in a little window like that, the minimum edge of which is 35 characters
  147. out and 11 characters down.  The maximum edge is 45 characters out and 15
  148. characters down.
  149.  
  150. Actually, I may do it  x1,y1 dx2,dy2  where dx2 and dy2  are offsets from
  151. x1,y1 instead of 0,0.  This would make it:
  152.  
  153.         x1=35   y1=11  dx2=10  dy2=4            instead of:
  154.         x1=35   y1=11   x2=45   y2=15     
  155.  
  156. The routines used to be tailored to a specific screensize:
  157.         640x200
  158.  
  159. Now you can make the routines think they're in any size screen you want to by
  160. setting those variables.
  161.  
  162. The funny thing was, I found a way to make it *faster* the new way than the
  163. old way.  (Unless you are printing less than three characters, then it is
  164. longer than the old way. :-)
  165.  
  166.  
  167. WHAT I'M GETTING AT WITH ALL OF THIS IS THAT...
  168.  
  169. It's probably going to take me 'till next weekend to finish and test these.
  170. (Not that I'm a slow programmer, but I have finals to study for :-(      )
  171.  
  172. So, if you wouldn't mind waiting a week, I'd be more than happy to mail the
  173. routines to you.
  174.  
  175. Thanks,
  176. --
  177. Bill Kelly      {akgua, hplabs!hp-sdd, sdcsvax}!crash!pnet01!billk
  178.                 (Don't use pnet01!billk; try crash!pnet01!billk -- Thanks!)
  179.  
  180.                 "This is *another* FINE MESS you've gotten us into, Stanley!"
  181.  
  182. ==========================================================================
  183.  
  184. Date: Tue, 26 May 87 07:26:43 PDT
  185. >From: ames!scubed!pnet01!billk (Bill Kelly)
  186. To: doc@j.cc.purdue.edu
  187. Subject: Sorry- not quite yet.  (WarpText)
  188.  
  189.  
  190. Sheesh, what a lof of pathnames to type in! :-)  This should be going to
  191. everyone who sent me mail about my text routines.  
  192.  
  193. THE GOOD NEWS: 
  194.  
  195. Everything's written... and it looks really nice.  I think it will be very
  196. easy to use.  You are limited to a font that is 8 pixels wide, however the
  197. font can be any number of lines high.   You can define your own 'window' you
  198. want the routine to write into and it will stay there.  You don't even have to
  199. open a normal intuition window to do this.  You just need a pointer to a
  200. bitplane.    You can now specify which bitplane to write into, though at the
  201. momont the routine only writes into one bitplane at a time.  The routine
  202. doesn't print spaces for speed purposes.  (If you don't like this you can just
  203. remove two lines of code)  At the moment it handles CR, LF, and FF.  
  204.  
  205. THE BAD/INDIFFERENT NEWS:
  206.  
  207. The routine is untested.  That's why I'm not sending it.  I am going to make
  208. an attempt at debugging it tonight.
  209.  
  210. While it linefeeds and CR's right, it does not clear the screen on a FF -- it
  211. just points itself at the top of the 'window' you defined.  Also, it does no
  212. scrolling as of yet.  When it gets to the bottom of it's 'window' it just
  213. wraps around on the last line.
  214.  
  215.  
  216. This stuff was omitted because I had no time... I will add it later.   The
  217. code is clear (I think so, anyway) so you should be able to add/subtract from
  218. it quite easily.   
  219.  
  220.  
  221. So, I will try to debug it tonight, if that's possible.  (It may be, with the
  222. help of Forth)  Anyway, it's *written* and coming soon... 
  223.  
  224. Bill Kelly.
  225.  
  226. BTW, rather than typing in all these pathnames again, I will probably just
  227. post the pre-release to comp.amiga.sources.  If anyone needs it sent directly
  228. to them. i.e. can't get to comp.amiga.sources, please let me know!
  229.  
  230. --
  231. Bill Kelly      {akgua, hplabs!hp-sdd, sdcsvax}!crash!pnet01!billk
  232.                 (Don't use pnet01!billk; try crash!pnet01!billk -- Thanks!)
  233.  
  234.                 Commodore's marketing strategy: "Ready...FIRE! ...aim???"
  235.  
  236.